

#include <iostream>
using namespace std;


//class Sln {
//public:
//    string reverseStr(string s, int k) {
//        int k_beg = 0, k_end = 0;
//        int sz = s.size();
//
//        for (int i = 0; i < sz; ++i)
//        {
//            int cnt = i + 1;
//
//            if (sz - k_beg < k)
//            {
//                reverse(s.begin() + k_beg, s.end());
//                return s;
//            }
//
//            if (sz - k_beg > k - 1 && sz - k_beg < 2 * k)
//            {
//                reverse(s.begin() + k_beg, s.begin() + k_beg + k);
//                return s;
//            }
//
//            if (cnt % k == 0 && cnt % (2 * k) != 0)
//                k_end = i;
//
//            if (cnt % (2 * k) == 0)
//            {
//                reverse(s.begin() + k_beg, s.begin() + k_end + 1);
//                k_beg = i + 1;
//            }
//        }
//
//        return s;
//    }
//};
//
//int main()
//{
//    Sln().reverseStr(string("abcd"), 2);
//
//
//	return 0;
//}

//class Sln {
//public:
//    bool isPalindrome(string s) {
//        string str;
//        for (auto ch : s)
//        {
//            if (isdigit(ch) || isalpha(ch))
//            {
//                if (isupper(ch))
//                    str += tolower(ch);
//                else
//                    str += ch;
//            }
//        }
//
//        int l = 0, r = str.size() - 1;
//        while (l < r)
//        {
//            if (str[l++] != str[r--])
//            {
//                return false;
//            }
//        }
//
//        return true;
//    }
//};
//
//int main()
//{
//   Sln().isPalindrome(string("ABcd34"));
//
//    return 0;
//}

#include <string>
class Sln {
public:
    int myAtoi(string str) {

        for (int i = 0; i < str.size(); ++i)
        {
            if (!isblank(str[i]))
            {
                int brk = 0;
                //if (!isdigit(str[i]) && str[i] != '+' && str[i] != '-')
                if (!(isdigit(str[i]) || str[i] == '+' || str[i] == '-'))
                    return 0;

                int j = i, flag = 1;
                if (str[j] == '-')
                {
                    flag = -flag;
                    ++j;
                }

                string s;
                while (j < str.size())
                {
                    if (brk)
                        break;

                    if (isdigit(str[j]))
                        s += str[j];
                    else
                        brk = 1;

                    ++j;
                }

                if (s.size())
                {
                    if (s.size() >= 11 && s > to_string(INT_MAX))
                    {
                        if (flag == 1)
                            return INT_MAX;
                        else
                            return INT_MIN;
                    }

                    return flag * stoi(s, nullptr, 10);
                }
                else
                    return 0;

            }
        }

        return 0;
    }
};
        
int main()
{
    //int ret = Sln().myAtoi(string(".1"));
    //int ret = Sln().myAtoi(string("42"));
    //int ret = Sln().myAtoi(string("-91283472332"));
    int ret = Sln().myAtoi(string("+1"));
    cout << ret << endl;

    //cout << stoi(string("-91283472332")) << endl;

    return 0;
}